## 8.5. UserDir

>     UserDir directory
>     Default: UserDir public_html
>     Server config, virtual host

The basic idea here is that the client is asking for data from a user's home directory. He asks for http://www.butterthlies.com/~peter, which means "Peter's home directory on the computer whose DNS name is www.butterthlies.com." The `UserDir` directive sets the real directory in a user's home directory to use when a request for a document for a user is received. directory is one of the following:

- The name of a directory or a pattern such as those shown in the examples that follow.

- The keyword `disabled`. This turns off all username-to-directory translations except those explicitly named with the `enabled` keyword.

- The keyword `disabled` followed by a space-delimited list of usernames. Usernames that appear in such a list will never have directory translation performed, even if they appear in an `enabled` clause.

- The keyword `enabled` followed by a space-delimited list of usernames. These usernames will have directory translation performed even if a global disable is in effect, but not if they also appear in a `disabled` clause.

If neither the `enabled` nor the `disabled` keyword appears in the `UserDir` directive, the argument is treated as a filename pattern and is used to turn the name into a directory specification. A request for http://www.foo.com/~bob/one/two.html will be translated as follows:

>     UserDir public_html     -> ~bob/public_html/one/two.html
>     UserDir /usr/web        -> /usr/web/bob/one/two.html
>     UserDir /home/*/www     -> /home/bob/www/one/two.html

The following directives will send redirects to the client:

>     UserDir http://www.foo.com/users -> http://www.foo.com/users/bob/one/two.html
>     UserDir http://www.foo.com/*/usr -> http://www.foo.com/bob/usr/one/two.html
>     UserDir http://www.foo.com/~*/   -> http://www.foo.com/~bob/one/two.html

Be careful when using this directive; for instance, `UserDir` `./` would map /~root to "/", which is probably undesirable. If you are running Apache 1.3 or above, it is strongly recommended that your configuration include a `UserDir` `disabled` `root` declaration.

Under Win32, Apache does not understand home directories, so translations that end up in home directories on the right-hand side (see the first example), will not work.

Copyright © 2001 O'Reilly & Associates. All rights reserved.